#ifndef INMERSIONESSOURCEMODEL_H
#define INMERSIONESSOURCEMODEL_H

#include "stable.h"

class InmersionesSourceModel : public QAbstractListModel
{
    Q_OBJECT
public:
    enum InmersionesRoles {
        InmersionRole = Qt::UserRole + 1,
        NumeroRole,
        InicioRole,
        HoraRole,
        DuracionRole,
        FinRole,
        SitioRole,
        UbicacionRole,
        PaisRole,
        ViajeRole
    };
    InmersionesSourceModel( DataStore* datastore );
    int rowCount( const QModelIndex& /*parent = QModelIndex()*/ ) const { return _inmersiones.size(); }
    QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const;
    quint32 loadInmersiones( Buceador* buceador );
    void clearInmersiones();
    Inmersion* inmersion( const QModelIndex& index ) {
        if( _inmersiones.empty() ) { return NULL; };
        if( index.row() == -1 ) { return NULL; }
        return _inmersiones.at( index.row() );
    }
    bool removeRows( int row, int count, const QModelIndex& parent = QModelIndex() );
private:
    DataStore* _datastore;
    QList<Inmersion*> _inmersiones;
};

#endif // INMERSIONESSOURCEMODEL_H
